草庐IT

Java getNodeName 和命名空间

全部标签

c++ - Google Mock - 如何命名模拟函数?

我刚刚开始使用GoogleMock。ForDummies相当容易理解。但是,我不明白为什么这个例子有classMockTurtle:publicTurtle{public:...MOCK_METHOD0(PenUp,void());MOCK_METHOD0(PenDown,void());MOCK_METHOD1(Forward,void(intdistance));MOCK_METHOD1(Turn,void(intdegrees));MOCK_METHOD2(GoTo,void(intx,inty));MOCK_CONST_METHOD0(GetX,int());MOCK_CONS

c++ - 另一个命名空间内的 `using namespace` 范围

这个问题在这里已经有了答案:scopeofusingdeclarationwithinanamespace(5个答案)关闭5年前。我知道我将using指令的范围限制在一个block或一个函数中。然后它将仅适用于该范围。但是如果该block是一个命名空间,它显然适用于同一命名空间的所有block。那是对的吗?至少,以下示例表明:(http://ideone.com/K8dk7E)namespaceN1{structFoo{};}namespaceN2{usingnamespaceN1;Foof;}namespaceN2{Foof2;}intmain(){N2::f2;}我原以为Foof2

c++ - 是否可以在不创建临时变量的情况下将 "pass"设置为未命名参数?

我正在使用未命名参数编写一个简单的基于类型的调度程序,我想这是很正常的事情。当真正调用该函数时,我想在手头没有任何变量的情况下进行重载。可能吗?例如voidf1(int/*canchangethetype*/){}intmain(int,char*){f1(/*whattoputhere?*/);return0;}我的“真实”示例是一个简单的基于类型的调度程序。我想出的最好的办法是将指针作为未命名参数,我认为它的开销可能最少:#includeusingnamespacestd;templateclassA{public:A(constU&u):u(u){};templateTget_a

c++ - 调用基类构造函数而不命名其类

classMyDerived:publicIncredble>,And,BaseClass,Name>{public:MyDerived();}MyDerived::MyDerived:???(params){}有没有什么方法可以在不写全名和类型定义的情况下调用基本构造函数?原因很明显是为了避免代码重复,并在基类模板参数中的某个细节发生变化时引入多个位置进行更改。第2级:templateclassMyDerived:publicIncredble>,And,BaseClass,Name>{public:MyDerived();}templateMyDerived::MyDerived:

c++ - 在匿名命名空间中定义 QObject 派生类?

我正在使用Qt5.7(C++)。在一个类的cpp文件中,我使用匿名命名空间来创建一个我将仅在该文件中使用的类(一些实用程序)。但是,如果实用程序类派生自Qt类,我会遇到链接错误。我认为问题出在Q_OBJECT宏上,如果我不添加它,我就不会收到错误。但是在任何Qt派生类中都必须/推荐使用Q_OBJECT宏。我怎样才能避免这个问题?是否有任何其他方法来获得具有文件范围的实用程序类?显示错误的简单示例:类CMyClass使用派生自QWidget的实用程序类(名为CUtility)。谢谢。CMyClass.hclassCMyClass{public:CMyClass();voidsomeMet

c++ - 在命名空间 C++ 中正确声明外部变量

我有一些const变量,我希望它们的值在多个源文件之间共享。我还希望将变量的范围限制在命名空间内。我不确定执行此操作的最佳/正确方法?我可以使用#define但想要类型安全。到目前为止,我有以下有效的方法:文件0.h#pragmaoncenamespaceNamespace1{externconstintvariable1;externconstintvariable2;}文件0.cppconstintNamespace1::variable1=10;constintNamespace1::variable2=10;源1.cpp#include"File0.h"intresult1=N

c++ - 限制 C++ header 中的命名空间污染

在我们的团队中,我们希望限制在全局范围内在header中添加“使用命名空间”的做法,因为这不是一个好的做法,而且通常会导致名称冲突和命名空间污染。在gcc中有没有办法限制这种在编译时在头文件中添加using命名空间的做法?我的意思是当编译器在全局范围内看到header“使用命名空间”时收到某种警告。谢谢 最佳答案 您可以将clang-tidy与googlebuildusingnamespace一起使用检查,应该提示这些使用指令。 关于c++-限制C++header中的命名空间污染,我们在

c++ - 比较 std::vector 在命名空间中使用自己的类不编译

以下代码无法编译,因为未找到比较运算符。#include#include#includenamespaceCool{structPerson{std::stringname;};}booloperator==(constCool::Person&p1,constCool::Person&p2){returnp1.name==p2.name;}intmain(int,char*[]){std::vectora{{"test"}};std::vectorb{{"test"}};boolok=a==b;std::cout经过一些实验,我发现以下代码可以完美编译:#include#includ

c++ - 使用命名空间隐藏内部类实现

我正在开发一个库,我想为我的用户提供一个与隐藏在命名空间中的实际实现分开的公共(public)接口(interface)。这样,我可以只更改HiddenQueue类,而不更改仅向用户公开的myQueue。如果我将HiddenQueue的C++代码放在myQueue.cpp文件中,编译器会提示说_innerQueue的类型不完整。我认为链接器能够解决这个问题。我在这里做错了什么?//myQueue.hnamespaceinner{classHiddenQueue;};classmyQueue{public:myQueue(););private:inner::HiddenQueue_in

c++ - 如何调用不同命名空间中的函数?

我在namespacebuzz中有一个名为test的函数。从这个测试函数中,我调用了另一个名为dummy的函数,它位于namespaceexample中。我收到以下错误:Dummyisnotamemberofexample.你能告诉我如何在2个不同的命名空间之间进行通信吗?谢谢 最佳答案 以下代码适用于gcc(如预期)。您的问题一定与问题中没有的东西有关。#includenamespaceexample{voiddummy(){std::cout 关于c++-如何调用不同命名空间中的函数